五、匿名函数

5.1 声明匿名函数

匿名函数是指没有函数名的函数。

看下面一段代码:

<script type="text/javascript">
      /*
      //这里定义了一个函数,而且没有函数名。这样写语法是错误的,如果允许这样定义,那么根本就没有办法调用。
      //所以,我们可以用一个变量来存储一下
     function(){ 

     }
     */
  // 声明了一个匿名函数,并把匿名函数赋值给变量f。 注意这个时候这个匿名函数并没有执行。
  var f = function(){
    alert("哥们我是匿名函数内的代码");
  }
  //我们可以把变量 f 当做一个函数名来调用
  f();  //调用上面定义的匿名函数
</script>

说明:

  1. 匿名函数除了没有函数名之外,其他与普通的函数没有任何区别。

  2. 如果想在别的地方调用匿名函数,则应该声明一个变量,并把匿名函数赋值给这个变量

  3. 可以把这个变量名做为函数名来调用。参数传递,方法返回值和普通的函数一样。

5.2 匿名函数的作用

  1. 函数表达式可以存储在变量中,变量也可以作为一个函数使用。

  2. 可以将匿名函数作为参数传递给其他函数

<script type="text/javascript">
  //声明一个函数,参数接受一个函数
  function fun1 (fun) {
    if(typeof fun == "function"){    //如果传递的是function类型,则调用这个函数
      fun()
    }
  }
  // 调用函数fun1,并传入一个匿名函数实参
  fun1(function () {
    alert("这个是匿名函数的代码")
  });
</script>
  1. 可以通过匿名函数完成某些一次性的任务。

  2. 如果一个函数不需要重复执行,则可以定义一个匿名函数

5.3 匿名函数立即执行

有些场景,我们需要定义完函数之后立即执行,这个时候可以定义一个匿名函数来完成。

(function () {
    alert("匿名函数立即执行")
})();

说明

  1. 需要把匿名函数用一对圆括号括起来,把匿名函数作为一个整体来对待

  2. 最后再添加一对圆括号表示调用函数。这样定义的匿名函数就会立即执行

  3. 当然,这个时候即使给这个函数加上方法名,也可以调用。不过这种情况为什么还要加方法名呢?

results matching ""

    No results matching ""